1. Field of the Invention
The present invention relates to a storage control device and to a control method for a storage control device, and, more particularly, relates to a storage control device and a control method for a storage control device, which, for example, can perform data input and output to and from a storage device for which the management unit for data input and output is different.
2. Description of the Related Art
A disk array system is per se known as one type of storage system which is connected to a host computer (hereinafter termed a “host”) such as a server or a mainframe machine. Such a disk array system is sometimes also termed a RAID (Redundant Array of Inexpensive Disks) system, and it comprises a plurality of disk drives which are arranged in the form of an array, and a control unit which controls them.
In such a disk array system, by operating the plurality of disk drives in parallel, it is possible to perform processing of read requests and write requests for data at high speed. Furthermore, with such a disk array system, it is also possible to add redundancy for the data, as is per se known as RAID1 through RAID5 (refer to “A Case for Redundant Arrays of Inexpensive Disks (RAID)”, by D. Patterson & two others, ACM SIGMOD Conference Proceedings, June 1988, pp. 109-116).
Thus, with such a disk array system, redundant data is generated in order to be able to restore the data even if some problem has occurred with one of the disk drives; and this redundant data different from the data is stored on a disk drive.
In addition to such a RAID structure, there are per se known disk array systems which employ security codes (refer to Japanese Patent Laid-Open Publication 2000-347815, U.S. Pat. No. 5,819,054, and U.S. Pat. No. 5,706,298). In one such prior art technique, the logical address of the logical block which the host computer designates as the destination for access (hereinafter termed the “LA” (Logical Address)), and an LRC (Longitudinal Redundancy Check) which is obtained by performing a calculation of the exclusive logical sum of the data in the logical block, are appended to the logical block as an assurance code, and this assurance code and the logical block are stored on the disk drive. The LA is used in order to detect an error in the address of the storage region into which the data of the logical block is written. And the LRC is used as an error detection code in order to detect an error in the data of the logical block.
With this prior art technique, it is possible to anticipate an enhancement of the reliability of the storage system by the use of such a RAID structure and assurance codes. However, in the case of using, as the storage system, a recording medium whose block length (sector length) is fixed, such as, for example, an ATA (AT Attachment) disk or the like, there is a possibility that the data unit when the control unit of the storage system is inputting and outputting data to and from the recording medium, and the data unit when the recording medium is performing input and output processing of data, are different. In such a case, a difficulty occurs with regard to inputting and outputting data to and from the recording medium.
It should be understood that, even if the data unit which is used by the recording medium is not fixed, the same problem as described above can occur, if the data unit when the control unit is performing input and output processing of data to and from the recording medium, and the data unit which is used by the recording medium, cannot be of the same size.
Furthermore, even if the size of a logical block, which is the unit when the host is handling data, and the sector length of the disk drive, agree with one another, the same problem as described above can occur, if the control unit of the storage system appends an assurance code to a logical block which is received from the host. With a storage system which employs an assurance code, the object which is written to the disk drive is the combination of the logical block and the assurance code. Accordingly, the size of the data item which is written to the disk drive, and the sector length of the disk drive, finally do not agree with one another.
As described above, it is difficult to record a logical block to which an assurance code has been appended, in a sector of a different size, just as it is without alteration. However, since, by checking the assurance code, it is possible to detect an error in the contents of the data and an error in the destination for writing the data, accordingly there is a great demand for the development of a technique for enabling input and output, in a simple and easy manner, of logical blocks to which assurance codes have been appended, to and from a recording medium which has a different sector length.